package com.munhrasoft.dinamica.business.entities;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;

@Entity
@NamedQueries(value = {
		@NamedQuery(name = "findAllGPassos", query = "SELECT gpassos FROM GrupoPassos gpassos order by gpassos.ordem"),
		@NamedQuery(name = "findByTitulo", query = "SELECT gpassos FROM GrupoPassos gpassos where gpassos.titulo = :titulo"),
		@NamedQuery(name = "findAllGPassosByTitulo", query = "SELECT gpassos FROM GrupoPassos gpassos order by gpassos.titulo")

})
@SequenceGenerator(name = "gpassosSeq", initialValue = 1, allocationSize = 1)
public class GrupoPassos {

	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "gpassosSeq")
	private int id_gpassos;
	private String titulo;
	private int ordem;
	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
	private List<PassosProcesso> passos;
	
	@Override
	public boolean equals(Object obj) {
		if (this.getId_gpassos() == ((GrupoPassos) obj).getId_gpassos()) {
			return true;
		} else {
			return false;
		}
	}

	public int getId_gpassos() {
		return id_gpassos;
	}

	public void setId_gpassos(int id_gpassos) {
		this.id_gpassos = id_gpassos;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public List<PassosProcesso> getPassos() {
		return passos;
	}

	public void setPassos(List<PassosProcesso> passos) {
		this.passos = passos;
	}

	public int getOrdem() {
		return ordem;
	}

	public void setOrdem(int ordem) {
		this.ordem = ordem;
	}

}
